package com.gpframework.common.enums;

import lombok.Getter;

/**
 * 消息枚举
 */
@Getter
public enum MsgTypeEnum {

    //参数类型
    MSG_TASK("任务", "task"),
    MSG_PARAMS("参数", "params"),

    //消息类型
    SYS_MSG("系统消息", "SYS_MSG"),
    SYS_COURSE_MSG("课程消息", "SYS_COURSE_MSG"),
    EMP_BUSINESS_MSG("业务通知", "EMP_BUSINESS_MSG"),
    EMP_JOB_MSG("任务通知", "EMP_JOB_MSG"),
    IN_AND_OUT_MSG("出入场通知", "in_and_out_msg"),
    ENTER_MSG("入场通知", "enter_msg"),
    APPEAR_MSG("出场通知", "appear_msg"),
    PRIVATE_EDUCATION_COURSE_BOOKING_MSG("私教预约通知", "PRIVATE_EDUCATION_COURSE_BOOKING_MSG"),
    GROUP_CLASS_BOOKING_MSG("团课预约通知", "GROUP_CLASS_BOOKING_MSG"),
    DEDUCTION_COURSE_MSG("扣课通知", "DEDUCTION_COURSE_MSG"),
    GROUP_CLASS_CANCEL_MSG("团课取消通知", "GROUP_CLASS_CANCEL_MSG"),
    FAIL_GROUP_CLASS_CANCEL_MSG("不成团团课取消通知", "FAIL_GROUP_CLASS_CANCEL_MSG"),
    PRIVATE_EDUCATION_CANCEL_MSG("私教课取消通知", "PRIVATE_EDUCATION_CANCEL_MSG"),
    BUY_WATER_BAR_GOODS_MSG("水吧消费通知", "BUY_WATER_BAR_GOODS_MSG"),
    //业务类型
    STORE_REGISTER("注册门店信息", "STORE_REGISTER"),
    POTENTIAL_CUSTOMERS("潜客信息", "POTENTIAL_CUSTOMERS"),
    //预约课程（会员）
    SUBSCRIBE_PRIVATE_EDUCATION("预约课程", "SUBSCRIBE_PRIVATE_EDUCATION"),
    //预约课程（教练）
    SUBSCRIBE_PRIVATE_EDUCATION_COACH("预约课程", "SUBSCRIBE_PRIVATE_EDUCATION_COACH"),
    //购卡通知（会员）
    BUY_CARD("购卡通知", "BUY_CARD", "购卡"),
    //购卡通知（雇员）
    BUY_CARD_EMPLOYEE("购卡通知", "BUY_CARD_EMPLOYEE"),
    //购课通知（会员）
    BUY_COURSE("购课通知", "BUY_COURSE", "购课"),
    //取消预约通知（会员）
    CANCEL_SUBSCRIBE("取消预约通知", "CANCEL_SUBSCRIBE"),
    //取消预约通知（教练）
    CANCEL_SUBSCRIBE_COACH("取消预约通知", "CANCEL_SUBSCRIBE_COACH"),
    //更换教练通知（会员）
    MODIFY_COACH("更换教练通知", "MODIFY_COACH"),
    //更换教练通知（教练）
    MODIFY_COACH_EMPLOYEE("更换教练通知", "MODIFY_COACH_EMPLOYEE"),
    //下课通知（会员）
    AFTER_CLASS("下课通知", "AFTER_CLASS"),
    //购买商品通知（会员）
    BUY_GOODS("购买商品通知", "BUY_GOODS"),
    //购买商品通知（雇员）
    BUY_GOODS_EMPLOYEE("购买商品通知", "BUY_GOODS_EMPLOYEE"),
    //会员出入场（教练）
    ENTRANCE_COACH("会员出入场", "ENTRANCE_COACH"),
    //上课通知（会员）
    ATTEND_CLASS("上课通知", "ATTEND_CLASS"),
    //上课通知（教练）
    ATTEND_CLASS_COACH("上课通知", "ATTEND_CLASS_COACH"),
    OPEN_MEMBER_MSG("开通消息会员", "OPEN_MEMBER_MSG"),
    SUCCESS_TEAM_FORMATION_MSG("成团消息", "SUCCESS_TEAM_FORMATION_MSG"),
    SUBSCRIBE_PERSONAL_TRAINING_MSG("预约私教课", "SUBSCRIBE_PERSONAL_TRAINING_MSG"),
    //预约课程（潜客）
    POTENTIAL_SUBSCRIBE_PRIVATE_EDUCATION("预约课程", "POTENTIAL_SUBSCRIBE_PRIVATE_EDUCATION"),
    //上课通知（潜客）
    POTENTIAL_ATTEND_CLASS("上课通知", "POTENTIAL_ATTEND_CLASS"),
    //生日关怀
    POTENTIAL_BIRTHDAY_CARE("生日关怀", "POTENTIAL_BIRTHDAY_CARE"),
    //未签到通知
    NOT_SIGNED_IN_MSG_ONE("未签到通知", "NOT_SIGNED_IN_MSG_ONE"),
    NOT_SIGNED_IN_MSG_TWO("未签到通知", "NOT_SIGNED_IN_MSG_TWO"),
    //会员卡过期前通知
    BEFORE_MEMBER_CARD_EXPIRED_ONE("会员卡过期前通知", "BEFORE_MEMBER_CARD_EXPIRED_ONE"),
    BEFORE_MEMBER_CARD_EXPIRED_TWO("会员卡过期前通知", "BEFORE_MEMBER_CARD_EXPIRED_TWO"),
    //会员卡过期通知
    MEMBER_CARD_EXPIRED("会员卡过期通知", "MEMBER_CARD_EXPIRED"),
    //会员卡过期后通知
    AFTER_MEMBER_CARD_EXPIRED_ONE("会员卡过期后通知", "AFTER_MEMBER_CARD_EXPIRED_ONE"),
    AFTER_MEMBER_CARD_EXPIRED_TWO("会员卡过期后通知", "AFTER_MEMBER_CARD_EXPIRED_TWO"),
    //次卡剩余次数
    CARD_REMAIN_NUM_ONE("次卡剩余次数提醒", "CARD_REMAIN_NUM_ONE"),
    CARD_REMAIN_NUM_TWO("次卡剩余次数提醒", "CARD_REMAIN_NUM_TWO"),
    //次卡使用完通知
    NUM_CARD_USE_UP("次数使用完提醒", "NUM_CARD_USE_UP"),
    //课程到期前通知
    BEFORE_COURSE_EXPIRED_ONE("课程到期前通知", "BEFORE_COURSE_EXPIRED_ONE"),
    BEFORE_COURSE_EXPIRED_TWO("课程到期前通知", "BEFORE_COURSE_EXPIRED_TWO"),
    //课程到期通知会员
    COURSE_EXPIRED("课程到期通知会员", "COURSE_EXPIRED"),
    //课程到期后 X 天通知会员
    AFTER_COURSE_EXPIRED_ONE("课程过期后通知", "AFTER_COURSE_EXPIRED_ONE"),
    AFTER_COURSE_EXPIRED_TWO("课程过期后通知", "AFTER_COURSE_EXPIRED_TWO"),
    //课程剩余节数
    COURSE_REMAIN_NUM_ONE("课程剩余节数", "COURSE_REMAIN_NUM_ONE"),
    COURSE_REMAIN_NUM_TWO("课程剩余节数", "COURSE_REMAIN_NUM_TWO"),
    //课程使用完
    COURSE_USE_UP("课程使用完", "COURSE_USE_UP"),
    //续卡
    CONTINUATION_CARD("续卡通知", "CONTINUATION_CARD", "续卡"),
    //转卡
    TURN_CARD("转卡通知", "TURN_CARD", "转卡"),
    //升级卡
    UPGRADE_CARD("升级卡", "UPGRADE_CARD", "升级卡"),
    //转课
    TURN_COURSE("转课通知", "TURN_COURSE", "转课"),
    //升级课程
    UPGRADE_COURSE("升级课程", "UPGRADE_COURSE", "升级课程"),
    //储值
    STORED_VALUE("储值通知", "STORED_VALUE", "储值"),
    //储值消费
    STORED_VALUE_CONSUMPTION("储值消费通知", "STORED_VALUE_CONSUMPTION", "储值消费"),
    ;


    /**
     * 业务名称
     */
    private String name;

    private String key;

    private String msg;

    private MsgTypeEnum() {
    }

    private MsgTypeEnum(String name) {
        this.name = name;
    }

    private MsgTypeEnum(String name, String key) {
        this.name = name;
        this.key = key;
    }

    private MsgTypeEnum(String name, String key, String msg) {
        this.name = name;
        this.key = key;
        this.msg = msg;
    }
}
